<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.9/vue.min.js"></script>
</head>
<body>
  <div id="app">
    <h3>{{obj.b}}</h3>
    <ul @click="handle">
      <li v-for="n in list" :key="n">{{n}}</li>
    </ul>
  </div>

  <script>
    let app = new Vue({
      el: '#app',
      data() {
        return {
          list: [1, 2, 3],
          obj: {
            a: {
              n: 1
            }
          }
        }
      },
      methods: {
        handle() {
          // this.list.push(4)
          // this.list.length = 5
          // this.obj.b = 2

          this.$set(this.obj, 'b', 10)
        }
      }
    })
  </script>
</body>
</html>